#!/bin/bash
#set -e
#统计总磁盘大小
function TotalDisk() {
	#计算出当前磁盘主分区大小
	DiskFree=`lsblk -b |grep  $sdx |awk '{print $4}' |head -n 1`  #获取总Bytes大小
        DiskTotalMb=`expr $DiskFree / 1024`  #将Bytes转化为G
	echo "磁盘/dev/${sdx}总大小为: ${DiskTotalMb}M"
}

#统计出使用磁盘大小
function UseDisk() {
#	num=1
#	DiskPartition=0
	nums=`lsblk -b |grep $sdx |awk '{print $4}'  |sed -n '2,99p' |awk '{print NR}' |tail -n 1`  #获取已分区数
	#echo "分区数量$nums"
	if [ $num -gt $nums ]
	then
	   	echo "$num -eq $nums :  大于 "
	else
		partition=`lsblk -b |grep $sdx |awk '{print $4}'  |sed -n '2,99p' |sed -n ${nums}p`  #统计出分区1/2/3..的字节大小
		DiskPartition=`expr $DiskPartition + $partition` #计算出分区的总大小
		DiskPartitions=`expr $DiskPartition / 1048576` #将Bytes转化为M
		echo "磁盘已分区: ${DiskPartitions}M"
		#num=$(( $num + 1 ))
		#echo "循环第 $num"
	fi
} 

#统计出磁盘剩余可分区
function FreeDisk() {
	Diskfree=`expr $DiskFree - $DiskPartition` #总的磁盘大小减去分区的总大小
	DiskMb=`expr $Diskfree / 1048576`  #将Bytes转化为M
	echo "当前/dev/${sdx}剩余大小为： ${DiskMb}M"
}


#格式化分区
function MkfsType() {
	#如果有ext、ext3、ext4、vfat、其他格式的可以注释下面，并且进行修改
	#read -p  "需要的格式问文件系统类型" type
	#mkfs.${type}  /dev/${sdx}
	mkfs.ext4  /dev/${sdx}${num}   >  /dev/null
}


#挂载目录
function MountDirectory() {
	[ -d /data${num} ] || mkdir  -pv  /data${num}
	df |grep dev |grep  ${sdx}${num}
	if [ $? -eq 0 ];then
        	echo  "已经挂载"
        else
                mount  -v  /dev/${sdx}${num}   /data${num}
        fi
}

#自动挂载,有需要自己添加进去
function AutomaticMount() {
	echo  '/dev/${sdx}${num}    /data${num}  ext4   defaults   0   0'  >> /etc/fstab	
}

num=1
DiskPartition=0
lsblk 
read -p   "准备格式化磁盘:"  sdx
parted -s  /dev/$sdx  mklabel msdos

#进行判断循环是否继续主分区，不再进行主分区就退出
while true
do
	TotalDisk
	read -p   "/dev/${sdx}磁盘是否进行主分 y/n" yn
	if [ "$yn" == "y" ];then
		read -p "设置第${num}块主分区的区间值:"  Mb1 Mb2
		parted -s /dev/$sdx  mkpart  primary "$Mb1 $Mb2"
		select="MkfsType UseDisk FreeDisk MountDirectory"
		for   implement  in  ${select[@]}
	        do
        	     $implement
	        done
		num=$(( $num + 1 ))
		echo -e "\n" #换行
	else
		break
	fi
done
